// ????
function * fn (n) {
    if (n > 0) {
        yield * fn(n-1);
        yield n - 1;
    }
}

for(let i of fn(2)) {
    console.log(i)
}

// 0
// 1